gusucode.com > VC 电梯管理系统 > VC 电梯管理系统/gusucode/Elevator/WaitQueue.cpp
//Download by http://www.NewXing.com // BitMap.cpp: implementation of the CWaitQueue class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "WaitQueue.h" /*#################################################################### 模块名称: 电梯箱体等待队列(利用位串实现) 开发作者: 漫步阳光 开发时间: @2005.11 ####################################################################*/ ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CWaitQueue::CWaitQueue() { m_iCurPos =1; m_iMaxQueueLen = FLOOR_NUM; m_cBitString = new CBitString(m_iMaxQueueLen); } CWaitQueue::CWaitQueue(int iMaxQueueLen) { m_iCurPos =1; m_iMaxQueueLen = iMaxQueueLen; m_cBitString = new CBitString(m_iMaxQueueLen); } CWaitQueue::~CWaitQueue() { } void CWaitQueue::addElement(int iDestFloor) { m_cBitString->setBit(iDestFloor); } void CWaitQueue::removeElement(int iDestFloor) { m_cBitString->clrBit(iDestFloor); } //CUpWaitQueue::getNextAvail int CUpWaitQueue::getNextAvail() { int result =-1; //for(int i=m_iCurPos; i<=m_iMaxQueueLen; i++) for(int i=1; i<=m_iMaxQueueLen; i++) { if(m_cBitString->getBit(i)) { result = i; break; } } if(result>0) m_iCurPos= i+1; return result; } CUpWaitQueue::CUpWaitQueue() { } CUpWaitQueue::CUpWaitQueue(int iMaxQueueLen) { } CDownWaitQueue::CDownWaitQueue() { m_iCurPos =m_iMaxQueueLen; } CDownWaitQueue::CDownWaitQueue(int iMaxQueueLen) { m_iCurPos =iMaxQueueLen; } //CDownWaitQueue::getNextAvail int CDownWaitQueue::getNextAvail() { int result =-1; //for(int i=m_iCurPos; i>0; i--) for(int i=m_iMaxQueueLen; i>0; i--) { if(m_cBitString->getBit(i)) { result = i; break; } } if(result>0) m_iCurPos= i-1; return result; }